#!/bin/bash

# 下载项目，然后解压生成到root目录下
sudo mkdir -p /root/oasis_ai_bot/ && curl -L https://gitee.com/ArryArry/depin/raw/master/oasis_ai_bot.tar.gz --output /root/oasis_ai_bot.tar.gz
tar -xzvf /root/oasis_ai_bot.tar.gz -C /root/oasis_ai_bot/ && chmod +x /root/oasis_ai_bot/*

# 安装 nvm
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash

# 将 Node.js 添加到环境变量
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
# 配置 Node.js 镜像源
export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/

# 配置环境
source ~/.bashrc

# 验证安装
command -v nvm

# 安装特定版本的 Node.js
nvm install 14

# 使用安装的 Node.js 版本
nvm use 14

# 检查 Node.js 和 npm 版本
node -v
npm -v

# 设置为淘宝镜像源
npm config set registry https://registry.npmmirror.com

# 验证配置是否生效
npm config get registry

# 安装 pm2
npm install -g pm2

# 验证安装
pm2 -v

# 进入项目目录
cd /root/oasis_ai_bot

# 提醒用户输入账户和密码

# 给用户三次输入的机会
attempts=0
max_attempts=3
while [ $attempts -lt $max_attempts ]; do
    read -p "请输入账户和密码，格式为“账户,密码”： " user_credentials

    # 检查输入格式是否正确
    case "$user_credentials" in
        *,*)
            # 将账户和密码写入 user.txt 文件
            echo "$user_credentials" | sudo tee /root/oasis_ai_bot/user.txt > /dev/null
            echo "账户和密码已成功写入 /root/oasis_ai_bot/user.txt"
            break
            ;;
        *)
            echo "输入格式不正确，请按照“账户,密码”的格式输入。"
            attempts=$((attempts + 1))
            if [ $attempts -eq $max_attempts ]; then
                echo "您已达到最大尝试次数，程序将退出。"
                exit 1
            fi
            ;;
    esac
done

# 生成节点
node /root/oasis_ai_bot/setup.js

# 定义脚本路径
LOG_PATH="/root/oasis_ai_bot/restart_node.log"
INDEX_PATH="/root/oasis_ai_bot/index.js"

# 创建日志目录（如果不存在）
mkdir -p $(dirname $LOG_PATH)
# 检查 restart_node.log 文件是否存在，如果不存在则创建
if [ ! -f "restart_node.log" ]; then
    touch "restart_node.log"
    echo "Created restart_node.log"
fi

# 启动index进程
pm2 start $INDEX_PATH --name oasis_ai_bot --output $LOG_PATH --error $LOG_PATH

# 设置定时任务重启index进程
pm2 start /root/oasis_ai_bot/ecosystem.config.cjs

# 安装 PM2 的日志轮转模块
pm2 install pm2-logrotate

# 配置日志轮转策略
pm2 set pm2-logrotate:max_size 10M
pm2 set pm2-logrotate:retain 7
pm2 set pm2-logrotate:compress true
pm2 set pm2-logrotate:workerInterval 60